home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir27 / grmat33d.zip / GRAPHMAT.DOC < prev    next >
Text File  |  1994-03-06  |  101KB  |  2,001 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10. ========================================================================
  11.  
  12.   GGGG                       h                      t
  13.  G    G                      h                    ttttt
  14. G                            h                      t      i
  15. G  GGGG  rrrr   aaaa  pppp   hhhh   mmm mm    aaaa  t         cccc  aaaa
  16. G     G  r  r  a   a  p   p  h   h  m  m  m  a   a  t      i c     a   a
  17.  G    G  r     a   a  p   p  h   h  m  m  m  a   a  t   t  i c     a   a
  18.   GGGG   r      aaaa  pppp   h   h  m  m  m   aaaa   ttt   i  cccc  aaaa
  19.                       p
  20.                       p
  21.  
  22. ========================================================================
  23.  
  24.                                Graphmatica
  25.  
  26.                      Version 3.30  Sun 06 Mar 1994
  27.  
  28.  
  29.                             by Keith Hertzer
  30.                      Copyright (C) 1994 kSoft, Inc.
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.                           System Requirements:
  39.                           --------------------
  40.  
  41. IBM personal computer or compatible equipped with CGA, EGA, or VGA
  42. graphics, at least 256 KB of RAM, and a diskette drive or hard disk,
  43. running MS-DOS version 2.0 or higher. Epson dot-matrix and HP
  44. DeskJet/LaserJet and compatible printers are supported but not
  45. required.
  46.  
  47. Graphmatica also supports Microsoft and compatible mice. If you have a
  48. mouse driver installed, Graphmatica will automatically detect and make
  49. use of your mouse. See Section I for details on "mouse strokes."
  50.  
  51. Note: Please do not edit the files GRMAT1.HLP - GRMAT6.HLP They are
  52. formatted especially for use by the Graphmatica help view function.
  53. Altering these files may prevent effective use of the help text. These
  54. files are a subset of the information contained in GRAPHMAT.DOC, so if
  55. you want printed documentation, you don't have to print the .HLP files.
  56.  
  57.  
  58.  
  59.  
  60.                  Graphmatica version 3.30  GRAPHMAT.DOC
  61.  
  62. ======================================================================
  63.                          C  O  N  T  E  N  T  S
  64. ======================================================================
  65.  
  66.  
  67. Section I: Using Graphmatica.........................................3
  68.  
  69. Section II: Using the Graph function.................................5
  70.  
  71. Section III: Extended graph functions: polar, parametric, dif eq....14
  72.  
  73. Section IV: Using AutoRedraw and the Redraw Queue...................17
  74.  
  75. Section V: View: Changing the appearance of the screen..............20
  76.  
  77. Section VI: Labels: Adding Explanatory Text to a Graph..............23
  78.  
  79. Section VII: Options: Viewing and setting special options...........25
  80.  
  81. Section VIII: Using a printer with Graphmatica......................27
  82.  
  83. Section IX: Point menu: evaluating a graph at specific points.......29
  84.  
  85. Appendix A: Graphmatica's Command Line Arguments....................30
  86.  
  87. Appendix B: Editing equation lists and GRAPHMAT.INI.................31
  88.  
  89. Appendix C: Upgrade Notes: Changes from 3.20........................33
  90.  
  91. Appendix D: Shareware / Order Form..................................34
  92.  
  93.  
  94.                         GRAPHMATICA FOR WINDOWS
  95.  
  96. Graphmatica for Windows, version 1.3 is now available for Windows 3.1
  97. users. If Graphmatica for Windows isn't available from the source you
  98. got this file from, download it from CompuServe (in the math/science
  99. forum), FTP it from CICA, or send me $5 and I will send you a disk.
  100.  
  101.                           DEMO EQUATION FILES
  102.  
  103. Eight prewritten equation list files are included with Graphmatica to
  104. help demonstrate the kinds of graphs you can create and how to create
  105. them. Try loading each of them up, manipulating the view of the
  106. equations, redrawing, and modifying some equations. I suggest clearing
  107. the screen (if not the redraw queue as well) before loading a new file
  108. so the screen doesn't become too cluttered. Each file contains a
  109. different sort of graphs that you can draw with Graphmatica.
  110.  
  111. DIFEQ.GR    - sample differential equation approximations
  112. GRAPHMAT.GR - draws Graphmatica's name using parametric equations
  113. INEQUAL.GR  - sample inequalities
  114. LOGLOG.GR   - sample of logarithmic graph paper
  115. ODE2.GR     - sample of second-order differential equations
  116. POLAR.GR    - polar coordinates graphs
  117. TRIG.GR     - trigonometric graphs
  118. XYDEMO.GR   - Cartesian equations, quadratic equations, relations
  119. Read section IV (page 19) to learn how to use these demo files.
  120.  
  121.  
  122.  
  123. Section                                            =====================
  124. III                                                | Using Graphmatica |
  125.  I                                                 =====================
  126.  I
  127.  I
  128. IIIo                                                                   3
  129. ------------------------------------------------------------------------
  130.  
  131.                               USER INTERFACE
  132.  
  133. I've expended a significant effort to make the interface to Graphmatica
  134. for DOS as close to that of Graphmatica for Windows as possible,
  135. including writing my own menu and listbox routines. In general, I think
  136. the interface is pretty intuitive and consistent between the two.
  137.  
  138.                        The EQUATION QUEUE COMBOBOX
  139.  
  140. The main feature that makes Graphmatica unique is the equation queue
  141. combobox. Before you enter any equations, all you will see is the
  142. equation editing line at the top of the screen directly below the menu.
  143. Once you enter an equation, however, a down arrow will appear to the
  144. right of the edit line. Clicking on this arrow with the mouse or
  145. pressing the down arrow key brings down the listbox of the combobox,
  146. which shows you several of your equations at a time. Use the arrow keys
  147. to scroll up and down through the listbox; Graphmatica displays the
  148. status of each equation in the color it is drawn in as you highlight it.
  149. You can also move the highlight line by clicking on the up and down
  150. arrows on the scroll bar (when it appears). Click on an equation or
  151. press enter to select an equation. The listbox will close and the
  152. selected equation will appear in the editing area. You can close the
  153. listbox without selecting an equation by pressing Escape, clicking on
  154. the edit line, or raising the menu as detailed in the section below.
  155.     The equation queue is "home base": after completing any operation,
  156. you will be returned without delay to the edit line with a copy of the
  157. current equation, ready to create a new equation and graph it.
  158.     Graphmatica operates on the object-action interaction model: i.e.,
  159. first select an object (equation) to act on, and then select an action
  160. to perform on it. You must select an equation from the combobox BEFORE
  161. you choose a menu item to apply to it; the program will not prompt you
  162. for which equation to redraw, evaluate a point from, or delete.
  163.  
  164.                 POP-UP PROMPTS and the Graphmatica EDITOR
  165.  
  166. Most data input in Graphmatica is done through pop-up "dialog boxes"
  167. which appear in the middle of the screen. (Of course, the equation input
  168. takes place in the combobox at the top of the screen.) If there are
  169. additional instructions, they will replace the menu bar on the top line.
  170. The input editor makes full use of the standard editing keys: Insert,
  171. Delete, Backspace, Left and Right arrow keys, Home, and End. Escape
  172. clears the entire field. The flashing cursor shows the current position
  173. and is either an underscore or a full block to indicate normal
  174. (overwrite) or insert modes. The editor can handle lines longer than the
  175. actual display space. When you move the cursor near the edge of the
  176. field, for equations and titles, it will automatically scroll to show
  177. you the rest of the line.
  178.  
  179. Usually if you choose a function by mistake and it presents you a pop-up
  180. prompt, pressing enter or ESC on the blank field will return you to the
  181. equation editor as if you had never selected the option. Note that this
  182. is not true for the Range function; if you press ESC at all 4 prompts
  183. the current range will be preserved, BUT the screen will clear.
  184.  
  185.  
  186.  
  187. I. Using Graphmatica                                                   4
  188. ------------------------------------------------------------------------
  189.  
  190.                                   MENUS
  191.  
  192. All features of Graphmatica are available through drop-down menus, which
  193. operate in a manner pretty close to Windows. (The one exception is that
  194. they are not technically "pull-down" like the Macintosh's; you must
  195. release the mouse button before the drop-down menu will appear.)
  196.  
  197. You have a choice of several ways to select menu items. If you have a
  198. mouse, just point and click. You can also use the keyboard in several
  199. ways. Note that to activate the menu for the first two ways you must
  200. first press the Alt key. (Pressing the Alt key or Escape exits the menu,
  201. in case you decide you actually want to continue editing.)
  202.  
  203. 1. Cursor keys: As you navigate through the menus with the cursor keys,
  204. an explanation of the highlighted option appears on the bottom line of
  205. the screen. Highlight the option you want by using the left and right
  206. cursor keys. Select the highlighted option in the top bar by pressing
  207. enter. Most top-level items call up a secondary drop-down menu.
  208. Highlight the item you want using the up and down cursor keys. Select
  209. the highlighted item by pressing enter again. To cancel the menu and
  210. return to the top bar, press Escape. Or, use the left/right cursor keys
  211. to move to the next item on the top bar.
  212.  
  213. 2. Alphabetic/mnemonic keys: Each menu item also has associated with it
  214. an alphabetic accelerator key that is shown in a different color when
  215. the menu is activated.  Pressing this letter selects that menu item.
  216. Most (but not all) of these letters are the first in the word, so after
  217. a while they are easy to remember. Thus, to select the menu item _P_aper
  218. in the _V_iew menu, where underlines indicate highlighting, you would
  219. press Alt, V, P. Holding down Alt is OK, too.
  220.  
  221. 3. Function keys: This is not the most intuitive way around, but I left
  222. it in for old times' sake. If you prefer, you can use function keys;
  223. they select the options in the current menu in the order they appear on
  224. the screen. (i.e. in the main menu, F1 selects File, F2 Redraw, etc., and
  225. F7 selects Help. In the View menu, F1 would select Clear, F2 Paper, and
  226. so on.) Sorry, function key labels aren't available, but there are not
  227. many options to learn. If you use function keys, though, you do NOT need
  228. to press Alt or Enter to select items.
  229.  
  230.  
  231.                               CHOICE BOXES
  232.  
  233. For prompts where you must choose between several options, (i.e. yes or
  234. no questions) Graphmatica displays a dialog box with instructions and
  235. two or more pushbuttons. You can respond to these either by clicking on
  236. the desired button with the mouse, pressing the highlighted letter of
  237. your choice, or pressing Enter or Escape. Enter selects the default
  238. choice, which is presented with a double box around it. Escape does
  239. whatever is appropriate at that point to evade the question and return
  240. you to the equation editor. If you don't know how to answer a prompt,
  241. Escape will never hurt.
  242.  
  243.  
  244.  
  245. I. Using Graphmatica                                                   5
  246. ------------------------------------------------------------------------
  247.  
  248.                           HINTS FOR MOUSE USERS
  249.  
  250. Graphmatica has internal support for Microsoft (R) and compatible mice.
  251. If a mouse driver is installed when you run Graphmatica, it will
  252. automatically be detected and the usual mouse arrow will appear. To use
  253. the mouse on the menus, you simply "point and click." Some of the other
  254. aspects of the program are not so intuitive:
  255.  
  256.    1. The left button, as usual, is always used to select an item or
  257.       emulate a keystroke. Whenever you see a prompt that says "Press
  258.       any key...", clicking the left button will have the same effect
  259.       as hitting a key.
  260.    2. The right button has the same effect as pressing the ESC key
  261.       whenever pressing ESC is a valid option. To get out of a
  262.       menu, you can click the right button.
  263.    3. When used with a mouse, the menus are technically drop-down, not
  264.       pull-down; you must release the mouse button before your choice
  265.       will be registered, so you can't push the button down, pull the
  266.       cursor around, and release the mouse button to select the item.
  267.    4. Whenever you are using Graphmatica's input editor, the mouse can
  268.       be used to do two things: Pressing the right button, as usual,
  269.       causes the same effect as pressing the ESC key. You can also
  270.       position the cursor inside the edit field by clicking the left
  271.       button on the space you want to move to.
  272.    5. In the equation combobox and file selector, clicking on the up or
  273.       down arrows on the scroll bar to the right of the listbox is
  274.       equivalent to pressing those keys, and moves the highlight up or
  275.       down one line. However, the rest of the scrollbar is display only;
  276.       you cannot click on the track or drag the thumb to change the
  277.       contents of the listbox.
  278.    6. To use the mouse to scroll through a help file, click on the key
  279.       name (highlighted in red on the bottom line of the screen which
  280.       corresponds to the action you want to perform. In addition,
  281.       clicking the right mouse button corresponds to the escape key.
  282.    7. The mouse is not available during the actual graphing loop, to
  283.       prevent the pointer and the graph drawing routine from fighting
  284.       over the screen. To pause the graph, you must use the keyboard.
  285.       The mouse can be used to restart or cancel the graph at this
  286.       prompt though.
  287.  
  288.  
  289.              Important! ---> HARDWARE NOTE <--- Important!
  290.  
  291. If you have a CGA monitor, you may need to run the DOS program
  292. GRAFTABL.COM (a small TSR that allows block graphics characters to be
  293. printed in graphics modes) before successfully running Graphmatica. The
  294. program comes with DOS 3.0 and up. If you're not sure whether your
  295. adapter has a graphics (>ASCII 127) character generator included, run
  296. Graphmatica first. If you NEED to run GRAFTABL, there will be NO box
  297. characters around the dropdown menus, none around the settings box, and
  298. the full block insert cursor will not function. Otherwise, you're okay
  299. without it. Since it's TSR, you need run it only once and then it's
  300. active until you reboot.
  301.  
  302.  
  303.  
  304. Section                              ===================================
  305. III III                              | Entering and graphing equations |
  306.  I   I                               ===================================
  307.  I   I
  308.  I   I
  309. III IIIo                                                               6
  310. ------------------------------------------------------------------------
  311.  
  312.                       GRAPHING CARTESIAN FUNCTIONS
  313.  
  314. So now that the cursor is blinking in the equation editor, what do you
  315. do? Just type in an equation and press enter. If you've used a
  316. programming language, spreadsheet, or math package on your computer
  317. before, you probably already know the basic format by heart. Just take a
  318. look at the sample files to make sure you know what everything means. If
  319. you're confused about how to specify division or exponents, see the
  320. operator table on the next page.
  321.  
  322. Here are the ground rules for normal Cartesian equations:
  323. + Always use exactly one "=" per equation
  324. + Always use exactly one "y", which need not be isolated
  325. + Always put some sort of expression on both sides of the "="
  326. + An expression consists of any mathematically meaningful combination of
  327.   decimal numbers, binary operations like + and *, parentheses,
  328.   functions, and variables or constants.
  329. + Spaces are completely optional, except where they serve to separate
  330.   alphabetic identifiers.
  331. + The order of operations is the standard algebraic left to right of:
  332.     Functions
  333.     Parentheses
  334.     Exponents
  335.     Multiplication and division
  336.     Addition and subtraction
  337.  
  338. Graphmatica supports implied multiplication of variables and constants
  339. as in "3x" or "5(2x+3)", but variables and other alphabetic
  340. identifiers such as functions and constants MUST be separated by a space
  341. or they will not be correctly identified. Thus  "xx", "xcos(x)", and
  342. "xpi" are not recognized, while "x*x" and "x pi" are OK. (Implied
  343. multiplication of the two variables x and y [e.g. "xy=1"] IS supported
  344. as a special case, however. I still recommend including the times sign
  345. in these cases for clarity.) Although I have greatly refined it in
  346. recent releases, the parser may still misinterpret some complex
  347. expressions for no apparent reason. Keep trying! I suggest liberal use
  348. of parentheses: if you are not sure whether something will be
  349. interpreted correctly, go back and put parentheses around it.
  350.  
  351.  
  352.                             CALLING FUNCTIONS
  353.  
  354. The parser's ability to determine exactly what you want to pass as an
  355. argument to a function is somewhat limited, so I suggest you make it a
  356. habit to enclose the desired expression in parentheses. "cos x" may work
  357. fine but "cos 2x" is interpreted as "(cos 2)*x" and "cos x^2" turns out
  358. "(cos x)^2". Typing "cos (2x)" or "cos (x^2)" instead works perfectly.
  359.  
  360.  
  361.  
  362. II. Entering and graphing equations                                    7
  363. ------------------------------------------------------------------------
  364.  
  365.                    OPERATORS, FUNCTIONS, AND VARIABLES
  366.  
  367. Graphmatica uses an operator set almost identical to BASIC's, with
  368. several additions to make it more user-friendly. The supported operators
  369. and functions are as follows:
  370.  
  371.    Operator            Meaning
  372.    =================   ==============================================
  373.    +, -, *, /          Add, subtract, multiply, divide
  374.    ^                   Exponentiation
  375.    [( )]               Parentheses: may be nested to any extent,
  376.                        brackets are provided for ease of reading but
  377.                        parser WON'T differentiate between "(" and "["
  378.    ; (semicolon)       Separate halves of a parametric equation
  379.    ' (single quote)    Make rest of the equation a comment
  380.    { m, n }            Specify domain, where 'm' is the start of the
  381.                        domain and 'n' is the end. Either end may be
  382.                        left open by omitting 'm' or 'n'.
  383.  
  384.    Function            Meaning
  385.    =================   ==============================================
  386.    abs                 absolute value
  387.    acos, asin, atan    arc cosine, arc sine, and arc tangent
  388.    asec, acsc, acot    arc secant, arc cosecant, and arc cotangent
  389.    cos, cosh           cosine and hyperbolic cosine
  390.    cot                 cotangent (1/tan)
  391.    csc                 cosecant (1/sin)
  392.    exp                 Euler's number to the specified power
  393.    int                 greatest integer ([x] is not supported)
  394.    ln, log             natural logarithm, logarithm base 10
  395.    sec                 secant (1/cos)
  396.    sin, sinh           sine, hyperbolic sine
  397.    sqrt (or sqr)       square root
  398.    tan, tanh           tangent, hyperbolic tangent
  399.  
  400.    Variables           Usage
  401.    =================   ==============================================
  402.    x, y                rectangular coordinates
  403.    r, t                r and theta in polar coordinates
  404.    x, y, t             x and y as functions of t in parametric form
  405.    x, t, dx            dif-eq mode, solves first order o.d.e.
  406.      [or y, x, dy]     dx is actually dx/dt in dx/dt = f(x,t)
  407.    d2x, d3x, d4x       second, third, fourth order differentials
  408.    a                   user-settable free variable; can specify range
  409.                        and step rate to calculate several values
  410.  
  411.    Constant            Value
  412.    =================   ==============================================
  413.    b, c                user-settable free variables (constant)
  414.    d                   converts degrees to radians = pi/180
  415.    e                   Euler's number = 2.718...
  416.    pi (or p)           pi = 3.14159...
  417.  
  418. Note: by default, all trig functions work in radians, not degrees. You
  419. can convert using the constant d: e.g. sin(45d) = sin (pi/4)
  420. cos (x*d) = cosine of x, in degrees (you will need to change the range
  421. of x to 0 to 360 to get the full graph)
  422.  
  423.  
  424.  
  425. II. Entering and graphing equations                                    8
  426. ------------------------------------------------------------------------
  427.  
  428.                            GRAPHING RELATIONS
  429.  
  430. Graphmatica's equation parser will automatically isolate the variable
  431. "y" wherever it is in the equation. It will graph some relations, like
  432. circles ("x^2+y^2=36") and ellipses ("x^2/3 + y^2/4 = 20"), as well as
  433. hyperbolas and many other conic sections. (Consult a good Algebra
  434. textbook for help on their formulas.) The only limitation for functions
  435. is that there must be one and only one occurrence of the variable "y".
  436. Graphmatica cannot graph an equation without a "y", like "x=4". It also
  437. cannot perform the factoring needed to isolate the variable "y" when it
  438. occurs more than once (i.e. "x=y^2+3y"). The relation graphing module
  439. (for graphs which may have more than one y value for a given x value)
  440. works like this: if in isolating the "y" in an equation Graphmatica
  441. finds an even power of it (i.e. "y^2"), it solves for both the positive
  442. and negative roots. This method by no means covers all possible
  443. relations, but it is adequate for the most common.
  444.  
  445.  
  446.                           GRAPHING INEQUALITIES
  447.  
  448. You can graph rectangular-coordinate inequalities by replacing the '='
  449. with '<' or '>' for many simple functions and relations. This feature is
  450. presently only available for cartesian graphs. (Also, since the free
  451. variable 'a' implies that more than one curve will be drawn, equations
  452. containing 'a' are incompatible with inequalities, and the parser will
  453. not accept any inequality that uses 'a'.)
  454.  
  455. The region that solves the inequality is hatched in with the graph
  456. color. (The curve itself is not actually dotted to indicate a strict
  457. inequality, however, so '<' is effectively "less than or equal to".) In
  458. most cases, asymptotes are detected and a boundary added there as
  459. appropriate, so graphs like "y < tan x" and "xy > 1" are drawn
  460. correctly. In addition, the valid domain of the function being graphed
  461. is detected automatically, so "y > log x", for instance, shades only the
  462. first and fourth quadrants.
  463.  
  464. To accommodate intersecting regions, the graphing routine alternates
  465. between '\' and '/' hatching. Best results will be obtained when you
  466. graph no more than two inequalities on the same screen.  Not only does
  467. this make it easier to interpret the graph, but it can also prevent
  468. conflicts between graphs that cause the inequality to shade incorrectly.
  469. The graphing routine first defines a region by solid lines in the
  470. current graph color plus the edges of the screen. It then "seeds" this
  471. region, which may be discontinuous, in one or more places, and flood-
  472. fills it. Since the flood-fill operation does not know anything about
  473. the actual curves, but rather stops as soon as it finds the boundary
  474. color, the region MAY SHADE INCORRECTLY if another graph of the same
  475. color intersects it.
  476.  
  477. Unfortunately, in 2-color modes (CGA and MCGA) every feature of the grid
  478. is the same color as the graphs. Because the fill routine is not very
  479. robust, even graph paper interferes with the shading if a hatched
  480. pattern is used. Therefore, a 50% gray pattern is used instead to graph
  481. inequalities accurately in monochrome modes. Sorry if this wears down
  482. your printer ribbon, but there is nothing I can do about it without
  483. writing my own fill routine. Also note that this method does not
  484. accommodate intersecting regions gracefully.
  485.  
  486.  
  487.  
  488. II. Entering and graphing equations                                    9
  489. ------------------------------------------------------------------------
  490.  
  491.                           SPECIFYING THE DOMAIN
  492.  
  493. Graphmatica allows you to specify the domain of each equation
  494. independently. This allows you to draw only a particular part of a graph
  495. or change the domain without using the Range or T range functions to
  496. change the default domain. To specify a domain for an equation, type
  497. anywhere on the line the expression
  498.                                 { m, n }
  499. where 'm' is the start of the domain and 'n' is the end. If you want the
  500. domain to start at the default start, leave 'm' out. Then, whatever you
  501. change the start of the default domain to, that will always be where the
  502. equations starts graphing. To leave the end of the domain open, leave
  503. out 'n'. So if the range on-screen is (-10,10), specifying a domain of
  504. "{ ,5}" will graph from -10 to 5, and one of "{-4, }"  from -4 to 10.
  505.  
  506. To graph a parametric equation, you MUST specify a domain that is closed
  507. (i.e. one that has neither number left out).
  508.  
  509. The domain is parsed like any other expression, so you can use all of
  510. the arithmetic operators and functions available in the rest of the
  511. equations, as well as numbers and the constants d, e, and pi. The only
  512. restriction is that you may not use a variable (see table, page 7) in
  513. your domain, since this would yield ambiguous results.
  514.  
  515.  
  516.                           USING FREE VARIABLES
  517.  
  518. In any equation, in addition to the pre-programmed constants such as e
  519. and pi, you can also include the free variables 'b' and 'c' which you
  520. can define yourself. These parameters are effectively symbolic constants
  521. that make it easier to "play around" with the exact shape of the curve
  522. without editing the equation extensively.
  523.  
  524. The values of parameters used in each equation must be specified along
  525. with that equation, but if you don't type them in explicitly,
  526. Graphmatica will prompt you for the value(s) and insert this
  527. information in the equation for you. If you want, you can type in a
  528. value manually using a format similar to the domain specifier described
  529. above, for example:
  530.          {b: 1}                {c: -1/2}            {b: -pi/4}
  531. As usual, enclose the "domain" in curly braces. You must specify which
  532. parameter you want to set by its name ('b' or 'c') and a colon, followed
  533. by a value, which can be any expression that evaluates to a constant.
  534. You may not use other parameters either, since this could become self-
  535. referential.
  536.  
  537. You can change the value of a free variable after you have typed in
  538. equations and Graphmatica will automatically update and redraw all of
  539. the graphs using it with the new value. See section .... for details.
  540.  
  541.  
  542.  
  543. II. Entering and graphing equations                                   10
  544. ------------------------------------------------------------------------
  545.  
  546.                      GRAPHING FAMILIES OF FUNCTIONS
  547.  
  548. The third free variable, 'a', is fundamentally different because you can
  549. specify not just a single value, but a range of possible values that it
  550. can take. This allows you to graph families of functions or level curves
  551. of a 3-D surface easily. For instance, "y = a*cos(x)" will graph cosine
  552. curves of varying amplitudes, and "x^2+y^2 = a" will draw level curves
  553. of the surface "f(x,y) = x^2+y^2".
  554.  
  555. You don't even need to know the syntax described below to use this
  556. feature, since Graphmatica will prompt for the needed values and insert
  557. them in the equation for you. If you don't specify a range for 'a',
  558. Graphmatica will ask you for three values: the start of the range, the
  559. end of the range, and the amount to step by. Graphmatica starts by
  560. graphing the function with 'a' set to the start of its range, and then
  561. increments 'a' by the step value and draws another graph until 'a'
  562. exceeds the end of its range. (You can also specify a negative step
  563. value as long as the end of the range is less than the start.)
  564.  
  565. To type this information in on the command-line, add the domain
  566. specifier "{a: start, end, step}" to your equation, replacing "start",
  567. "end", and "step" with the desired values. For example, "y=a*cos(x)
  568. {a: 1,6,2}" will draw graphs of y=cos x, y=3cos x, and y=5 cos x.
  569.  
  570. Although the program does not put any limit on the number of curves in
  571. the "family" you can graph, be aware that this feature uses memory
  572. rapidly. In any case, the screen will likely become too cluttered to be
  573. useful if more than ten or so graphs are drawn, so try to make your step
  574. rate proportionate to the size of the range.
  575.  
  576.                             DRAWING THE GRAPH
  577.  
  578. Once you have entered an equation that parses successfully and pressed
  579. enter, Graphmatica will proceed to graph it. To interrupt a graph when
  580. the computer is in the process of drawing it, hit any key and the
  581. program will display on the bottom line the message:
  582.    "PAUSE at x=#, y=#. Press ESC to quit, any other key to restart.. "
  583. where # indicates the x and y coordinates you stopped it at. If you
  584. mistyped the equation and want to fix it, just press ESC.
  585.  
  586. Be patient! Graphmatica may need a while to produce a quality graph on a
  587. slower machine. To speed up the graphing, you may want to select a lower
  588. Fineness value.
  589.  
  590. When the graph for your equation is complete, the blinking cursor will
  591. reappear in the equation editor. If you'd like to start  over with a
  592. completely different equation, press ESC to clear the input field. If
  593. you'd rather modify the last equation, go right ahead; it's already
  594. stored safe and sound in the redraw queue (for more information see
  595. Section IV: Using AutoRedraw and the Redraw Queue). Or you can modify
  596. any previously entered equation by pressing the down arrow key (or
  597. clicking on the down arrow next to the editing field) to drop down the
  598. equation queue listbox and then selecting an equation from the redraw
  599. queue. You can then redraw this equation by pressing enter, or modify it
  600. to create a new equation. To access Graphmatica's other features, press
  601. Alt or hit escape on a blank line to raise the menu, or click on the
  602. desired menu item with the mouse.
  603.  
  604.  
  605.  
  606. II. Entering and graphing equations                                   11
  607. ------------------------------------------------------------------------
  608.  
  609.                              ERROR MESSAGES
  610.  
  611. Eighteen error messages may be encountered when graphing (apart from
  612. messages ingrained in the library functions which I cannot control).
  613. Thirteen of them are fatal; the equation cannot be graphed and you must
  614. edit it. They will cause the computer to beep so you know there is a
  615. problem. The other five apply only to specific point(s) for which a y-
  616. value cannot be generated. They will not appear unless you ask for them
  617. using the Warnings option and then they appear silently.
  618.  
  619. [Please note that all warning messages which refer to the variables 'x'
  620. or 'y' will actually be 't' or 'r' when you are dealing with a polar
  621. equation.]
  622.  
  623. "Please type an equation (or select from the listbox); then press <-'
  624. to graph."
  625.     You pressed enter on the graph line without selecting or typing in
  626.     an equation.
  627.  
  628. "One or both sides of equation evaluated to nothing. Please edit your
  629. equation."
  630.     Make sure there is some sort of expression on each side of the
  631.     equation. Obviously, an entry like "y=" can't produce a meaningful
  632.     graph.
  633.  
  634. "No equals sign or more than one found. Press any key to edit the
  635. equation."
  636.     To be a valid and graphable, your equation must include exactly
  637.     one equals sign ['=']. If you get this error, you either left out
  638.     the '=' or accidentally typed two or more of them. For parametric
  639.     equations, there must be an '=' on each side of the dividing ';'.
  640.  
  641. "Inequalities only supported for rectangular equations. Replace < or >
  642. with =."
  643.     Inequalities cannot presently be evaluated for polar, parametric, or
  644.     differential equations. You may still be able to draw the graph if
  645.     you can express the inequality in rectangular form.
  646.  
  647. "Found bad operation or mismatched parentheses. Press any key to
  648. edit..."
  649.     You either left out a paren somewhere, left out one or both
  650.     of the operands for a binary operation or the argument for a
  651.     function, or typed some other weird thing the parser and evaluator
  652.     couldn't digest. Examine your equation carefully and fix whatever
  653.     seems to be the problem.
  654.  
  655. "Found unknown variable or function. Press any key to edit the
  656. equation."
  657.     Unfortunately, the evaluator isn't set up to return what caused
  658.     the error, so you'll have to look for it yourself. Check that your
  659.     equation contains only valid identifiers (x, y, pi, d, e, r, t, a,
  660.     b, and the functions listed above) and that you separated each of
  661.     them with an operator, space, or some other punctuation.
  662.  
  663.  
  664.  
  665. II. Entering and graphing equations                                   12
  666. ------------------------------------------------------------------------
  667.  
  668.                         ERROR MESSAGES, continued
  669.  
  670. "Missing argument to a binary operation or function. Please edit your
  671.  equation."
  672.     The parser couldn't find any identifiers or expressions to use as
  673.     one of the operands to a binary operation (like '+') or as the
  674.     argument to a function, like cos(x). All of Graphmatica's
  675.     functions require one argument following the function name.
  676.  
  677. "No dependent variable or more than one 'y' found. Please edit your
  678. equation."
  679.     Although Graphmatica can isolate ONE 'y' variable and graph some
  680.     relations, it cannot graph an equation without a 'y', like "x=4". It
  681.     also cannot perform the factoring needed to isolate the variable 'y'
  682.     (or 'r') when it occurs more than once (i.e. "x=y^2+3y"). If you can
  683.     adjust the equation so it uses only one 'y', do so; otherwise it
  684.     can't be graphed. In parametric graphing, this message may also
  685.     indicate that no 'x' variable was found in the x(t) equation.
  686.  
  687. "Can't find the inverse of this function of y. Press a key to edit
  688. equation."
  689.     You tried to graph an equation like "int(y)=x" or "abs(y)=x" for
  690.     which y cannot be isolated by taking the inverse of the function.
  691.     The functions which cannot be isolated are "abs", "cosh", "sinh",
  692.     "tanh", and "int". If you can't adjust the equation so this error
  693.     does not occur, it is not graphable.
  694.  
  695. "Parametric equation requires that you specify domain! See 'Graph' help
  696. file."
  697.     You typed in a parametric equation (or accidentally hit the
  698.     semicolon) and neglected to include a closed domain [like {1,6}].
  699.     Because the diversity of parametric equations makes it hard to pick
  700.     a default domain, you have to include one with each parametric
  701.     graph. See above in this section for help on giving the domain and
  702.     below in Section III for help on parametrics.
  703.  
  704. "Domain did not evaluate to a constant value. Press a key to edit
  705. equation."
  706.     The domain you entered either could not be parsed, or was found to
  707.     contain a non-constant identifier, like x or y. Valid domains must
  708.     have at least one side of the range defined and can't contain
  709.     variables, although any other expression that evaluates to a
  710.     constant is OK.
  711.  
  712. "Not enough initial values to draw graph. Make sure there are # and try
  713. again."
  714.     Although first-order ODEs may be graphed as a slope-field without
  715.     providing an initial value, second and higher order equations
  716.     require that you provide initial values for t, x, dx..., up to the
  717.     derivative one order less than the highest one in the equation. Make
  718.     sure that you have specified the right number of valid IVs.
  719.  
  720. "Initial value must be on screen to graph an ODE. Modify grid or
  721. equation's IV."
  722.     Since an initial-value approximation that doesn't start in the
  723.     visible grid may never encounter it, Graphmatica tries to avoid this
  724.     situation. Simply move the IV point or modify the grid so that it is
  725.     on screen.
  726.  
  727.  
  728.  
  729. II. Entering and graphing equations                                   13
  730. ------------------------------------------------------------------------
  731.  
  732.  
  733.                          WARNING ERROR MESSAGES
  734.  
  735. "Overflow at x=#.##."
  736.     Some function or operation generated a number too large to fit
  737.     into a 8-byte floating point variable. The point at x=#.## was not
  738.     graphed. This error is not fatal, so the graphing process is
  739.     continued, but if the message is repeated and no image is graphed,
  740.     you may need to abort graphing and look at your equation again.
  741.  
  742. "Division by zero at x=#.##."
  743.     At x=#.## your equation included division by zero so that point
  744.     was skipped. Unless you get this error repeatedly, there's no real
  745.     problem.
  746.  
  747. "Can't raise a negative number to a fractional power. [x=#.##]"
  748.     Due to the possibility of getting an even root of a negative
  749.     number (like -16^(1/2) which actually equals the square root of
  750.     -16), the C Library pow() function refuses to process any
  751.     arguments like these. This is not a fatal error, and the portion
  752.     of your graph (if any) where the base is not negative or the power
  753.     is not fractional should be graphed perfectly. This error also
  754.     occurs when you try to take the square root of a negative number
  755.     with the "sqr" function.
  756.  
  757. "Can't find the logarithm of a negative number. [x=#.##]"
  758.     The natural logarithm (ln) and base 10 logarithm (log) functions
  759.     are defined only on x greater than zero.
  760.  
  761. "Domain error: asin/acos functions defined only on -1<=x<=1. [x=#.##]"
  762.     The arcsine (asin) and arc cosine (acos) functions are only
  763.     defined between -1 and 1 (the range of the sin and cos functions).
  764.  
  765.  
  766.  
  767. Section                                     ============================
  768. III III III                                 | Extended Graph Functions |
  769.  I   I   I                                  ============================
  770.  I   I   I
  771.  I   I   I
  772. III III IIIo                                                          14
  773. ------------------------------------------------------------------------
  774.  
  775.                       INTRODUCTION TO POLAR GRAPHS
  776.  
  777. Polar coordinates are a fundamentally different approach to representing
  778. curves in two-dimensional space. The concept is pretty easy to grasp
  779. graphically, but if you have never used polar coordinates and want to
  780. understand them, you should probably read the section below.
  781.  
  782. The traditional Cartesian method relies on an x and a y coordinate to
  783. mark how far a point is from the axes in two perpendicular directions;
  784. polar coordinates plot the location of a point by one coordinate
  785. represented by the greek letter theta (looks like an O with a line
  786. through the middle--one of these methods should print it: Θ or O-) which
  787. is simplified to "t" in Graphmatica and another called "r". The "t"
  788. tells what direction to go in from the origin, and the "r" tells how far
  789. to go out in that direction to reach the point. The direction is
  790. measured in radians as an angle starting from the positive side of the
  791. x-axis and turning around counter-clockwise (like measuring the angle
  792. the hand on a clock has traveled starting at the 3 o'clock position and
  793. going backwards). There are 2pi radians in a complete circle,
  794. corresponding to 360 of the degrees you're familiar with. To put a polar
  795. coordinate into Cartesian terms in order to graph it, we use the
  796. equations: x = r cos (theta)  and  y = r sin (theta).
  797.  
  798. To make a graph using polar coordinates, we let theta be the independent
  799. variable and calculate a distance to plot out from the origin as we let
  800. the angle sweep around in the positive direction. The domain for the
  801. graphing is 0 to 2pi (the first complete circle in the positive
  802. direction), but you can easily change these values using the "T range"
  803. function in the View menu [see Section V]. Polar graphs can be entered
  804. in the equation editor just like normal graphs. The only difference in
  805. what you type, and the way Graphmatica detects a polar graph, is that
  806. you must use the variables "t" and "r" instead of "x" and "y". The
  807. restrictions are still the same: you can have one and only one instance
  808. of the dependent variable "r," although it can be located almost
  809. anywhere in the equation. You can embed the "r" in a term like "r^2" to
  810. graph functions that cannot be simplified by normal means and
  811. Graphmatica will evaluate both positive and negative roots automat-
  812. ically. You should watch as your graph is drawn, because often the
  813. direction it is going is almost as important as the figure it draws.
  814. (When you have a "double" equation with "r^2" in it, though, note that
  815. the positive roots are drawn first and then the negative roots are
  816. drawn: theoretically they should be drawn simultaneously, but this is
  817. not practical.)
  818.  
  819. Please note that the x and y coordinate ranges and the range for the
  820. variable theta function completely independently; in normal Cartesian
  821. graphing, theta's value is irrelevant, and in polar graphing, theta
  822. controls the domain of the graph, but the x and y ranges still control
  823. the physical screen you see. If you want to change your view of a polar
  824. graph, you use the scale or range functions just as you would normally.
  825.  
  826.  
  827.  
  828. III. Extended graph functions                                         15
  829. ------------------------------------------------------------------------
  830.  
  831.                     INTRODUCTION TO PARAMETRIC GRAPHS
  832.  
  833. Parametric graphing, like polar graphing, uses a different method of
  834. calculating points on the plane to come up with curves that may be
  835. difficult to compute using normal rectangular coordinates. They are
  836. unique in that the cartesian x and y coordinates are calculated based on
  837. a third variable (the "parameter" of x and y) which is traditionally
  838. called 't' (not to be confused with the 't' used by Graphmatica to
  839. represent theta). T is allowed to increase from the start of the domain
  840. you specify to the end. At each value, the functions x(t) and y(t) are
  841. calculated to give an (x,y) coordinate which is graphed. Graphmatica
  842. then connects these points to form a smooth curve--if something you
  843. graph begins to look jagged, you probably need to adjust the fineness.
  844. (Parametric graph fineness is linked to the same fineness control as
  845. Cartesian and polar graphing, and should be decent at the default
  846. fineness value, but if you need to, you can increase or decrease this
  847. value. Be aware that this will affect the fineness of non-parametric
  848. graphs as well. See Section VII "Adjusting the Fineness" for details.)
  849.  
  850. To enter a parametric graph, you need to remember four basic parts: the
  851. x(t) and y(t) functions, the semicolon between them (this is how
  852. Graphmatica knows it's a parametric graph), and the domain for t.
  853.                       semicolon
  854.                 x-function |   y-function    domain
  855.                     |      |        |           |
  856.                   x =  2t  ;   y =  2t^2   {-10, 10}
  857.  
  858. Although as in all other Graphmatica equations you don't need to solve
  859. for x and y (i.e. t=5x would be OK), only one x and one y can appear in
  860. the whole equation, and "double" equations like "x^2=t" where
  861. Graphmatica would normally solve for both the positive and negative
  862. roots are NOT supported (you can enter them but only the positive root
  863. will be found; each equation in the redraw queue is allowed enough space
  864. to hold two computable expressions, and either a double equation or an
  865. x/y pair of parametric equations will fit, but not both). You can type
  866. the x and y equations in in either order, as long as they are separated
  867. by a semicolon, and the domain will be recognized anywhere on the line.
  868. You MUST specify a domain for each parametric equation! The variety of
  869. curves that can be drawn with parametric equations is great and makes
  870. choosing an appropriate default domain impossible. Some curves (like
  871. those including the circular functions sine and cosine) tend to work
  872. best over a {0,2pi} domain, like polar graphs. Others will match up
  873. better with the default domain of the normal graphs, the size of the
  874. viewing area. Some have a very compact domain, between say 0 and 1,
  875. where they will appear on the screen. If you over- or under-estimate the
  876. domain, you can always abort the graph and edit your equation.
  877.  
  878.  
  879.  
  880. III. Extended graph functions                                         16
  881. ------------------------------------------------------------------------
  882.  
  883.                COMPARISON OF THE THREE GRAPHING TECHNIQUES
  884.  
  885.     While some curves can be drawn by cartesian relations, polar
  886. coordinates, and parametric functions, each technique is better suited
  887. for some graphs than for others. For instance, a circle with radius 5
  888. around the origin which can be produced by the equation
  889.                              x^2 + y^2 = 25
  890. can be drawn faster by the parametric equations
  891.                  x = 5 cos (t) ; y = 5 sin (t)  {0, 2p}
  892. and can be drawn faster and much more simply by the polar graph
  893.                                  r = 5.
  894.  
  895.             GRAPHING APPROXIMATIONS OF DIFFERENTIAL EQUATIONS
  896.  
  897. Graphmatica also provides the ability to approximate the solutions of up
  898. to fourth-order ordinary differential equations. [I will not provide
  899. background material on this function because if you need to use it, you
  900. probably know more about differential equations than I do.] To let the
  901. parser know you want to graph a differential equation, you must include
  902. the differential "dx" (which actually represents dx/dt) as one of your
  903. variables. If you specify an equation as dx = f(x,t) where f(x,t) is
  904. some combination of the variables x and t (such as "x^3 + t" or "t * x")
  905. and do NOT include the domain operator "{ , }", the program will draw a
  906. slope field for dx/dt = f(x,t), with t as the horizontal axis and x the
  907. vertical. Note that you can also use the notation dy = f(y,x) if you
  908. prefer; both sets of variables are automatically recognized as
  909. differential equations.
  910.  
  911. If you do include a "domain" {m, n}, however, it will not be interpreted
  912. as a domain but will instead indicate that you want to graph a specific
  913. solution to the initial-value problem x(m)=n by Runge-Kutta approximation.
  914.  
  915. Graphmatica will also solve second, third, and fourth order initial-
  916. value problems using a Runge-Kutta method for linear systems. To specify
  917. a second or higher order derivative, use the variables d2x, d3x, or d4x.
  918. Remember that for an nth order equation, you must also specify n+1
  919. initial values. You can type these into the equation using the "domain"
  920. notation described above; the order of values is t, x, dx, d2x, d3x.
  921. Thus d2x + x=0 {0,0,1} graphs a sine curve as the solution to
  922. "d^2x/dt^2 + x = 0" for x = 0 and dx/dt = 1 at t=0.
  923.  
  924. In addition, you can specify an initial value by moving the crosshairs
  925. around with the arrow keys or mouse. Type in an equation to add an IV to
  926. or select an equation to modify and choose the Set IV option from the
  927. Point menu. Move the cursor to the desired location and press enter or
  928. click the left mouse button to add the initial value point to the
  929. selected equation. For second-order or higher ODEs, you can also specify
  930. the first derivative using the mouse or arrow keys. After you select the
  931. IV point, Graphmatica displays a "rubber band" line from this point to
  932. the current position until you click/press enter on a second point. The
  933. coordinates of the first point are then taken to be the t and x values
  934. for the IV, and dx/dt is initially set to the slope of the line between
  935. the two points. If required, further initial values will be requested
  936. via dialog boxes.
  937.  
  938. This version of the program replaces a rather primitive 4th order Runge-
  939. Kutta routine with a much faster, and more accurate as well, adaptive
  940. step size algorithm.
  941.  
  942.  
  943.  
  944. Section                        =========================================
  945. III VVV VVV                    | Using AutoRedraw and the Redraw Queue |
  946.  I   V   V                     =========================================
  947.  I   V   V
  948.  I    V V
  949. III    V o                                                            17
  950. ------------------------------------------------------------------------
  951.  
  952.                             USING AutoRedraw
  953.  
  954. Whenever you change the scale to look at a graph in greater detail or
  955. from farther back, or you shift the range of the axes so that the graph
  956. you just drew will be centered, the screen must be cleared so that a new
  957. coordinate grid can be drawn. So you're left with the viewing angle you
  958. wanted for that graph, but the screen is blank. You shouldn't have to
  959. solve this problem by retyping the whole equation again...and you don't.
  960. You can redraw the equation much more easily by selecting Pick graph in
  961. the Redraw menu. But with AutoRedraw ON, you don't even have to do that.
  962.  
  963. As its name suggests, AutoRedraw will redraw the last equation(s) you
  964. typed in automatically when you change the scale or range. If you don't
  965. want a graph redrawn, you can abort it by pressing ESC twice and you
  966. will be returned to the equation editor. If you want to turn off
  967. AutoRedraw completely, just select AutoRedraw under the Options menu and
  968. answer "n" when asked if you want AutoRedraw on.
  969.  
  970. To change the number of graphs redrawn automatically, you should also
  971. select AutoRedraw from the menu. After responding "y" when asked if you
  972. want it on, enter the number of graphs (1-25) that you would like to be
  973. redrawn each time AutoRedraw is invoked. (If there aren't that many in
  974. the queue, Graphmatica will just redraw them all.)
  975.  
  976. AutoRedraw is ON by default. You can change the default to OFF by
  977. turning it off and using the Save Setup command to record this change in
  978. the GRAPHMAT.INI file.
  979.  
  980.                             THE REDRAW QUEUE
  981.  
  982. Every time you type in an equation, the character string you typed and
  983. the program's internal representation of that equation get stored in the
  984. redraw queue. From this queue, or list, you can call up any of the last
  985. 25 equations you typed to graph again with fewer keystrokes than
  986. retyping it. Or you can redraw all of them or the just the last one you
  987. typed with even fewer keystrokes. The equations in the queue are stored
  988. in an order that puts the most-recently-used at the beginning and the
  989. least-recently-used at the end. Hopefully, when the queue fills up, the
  990. equations that are bumped off the queue at the end will be the ones you
  991. won't miss very much.
  992.  
  993. As explained above, the screen clears whenever you execute Range or a
  994. successful Scale (if you abort Scale the screen remains as it was). If
  995. you execute either of these functions or clear the screen accidentally
  996. with the Clear menu option, you can redraw the last equation (if
  997. AutoRedraw hasn't already) by selecting Last graph under Redraw, or you
  998. can redraw all of the equations in the queue using Redraw All under the
  999. Redraw menu. Note that the redraw function does not keep track of which
  1000. graphs are on the screen at any point in time so "redrawing all" may put
  1001. more (if you plotted many equations on the screen before the last one)
  1002. or fewer (if you cleared the queue) equations on the screen than there
  1003. were before the screen was cleared.
  1004.  
  1005.  
  1006.  
  1007. IV. Using AutoRedraw and the Redraw Queue                             18
  1008. ------------------------------------------------------------------------
  1009.  
  1010.  
  1011.                            REDRAWING MANUALLY
  1012.  
  1013. The Pick graph option in the Redraw menu allows you to graph any
  1014. equation currently in the redraw queue. First choose an equation from
  1015. the combobox by clicking on it with the mouse or using the down key to
  1016. highlight it and pressing enter. Then, choose Pick graph from the menu.
  1017. (If you do not select an equation, Graphmatica redraws the first one in
  1018. the queue.) When you pick a graph, it is re-inserted at the top of the
  1019. redraw queue, as you'll likely be working with it again in the future.
  1020. So if you scale the grid again, that graph will be Auto-Redrawn, and if
  1021. you redraw the last graph, that graph will be shown.
  1022.  
  1023. You can redraw a single equation more efficiently within the equation
  1024. editor by selecting the equation as above and then simply pressing enter
  1025. (do not modify the equation) while it is in the equation editor. The
  1026. only advantage of the menu item is that it allows you to pick and redraw
  1027. one-handed with a mouse.
  1028.  
  1029.  
  1030.                           DELETING AN EQUATION
  1031.  
  1032. To remove an equation that is no longer of interest from the queue,
  1033. simply select that equation from the combobox (see Section I for
  1034. details) and then choose the Delete Eqn item from the Redraw menu. The
  1035. equation is then vaporized from the queue, although its graph will
  1036. remain on the screen until you clear the screen.
  1037.  
  1038.  
  1039.                         CLEARING THE REDRAW QUEUE
  1040.  
  1041. Selecting Clear All from the Redraw menu essentially starts a new
  1042. session, except the options settings and grid size remain the same.
  1043. All of the equations in the queue are deleted, and the screen and labels
  1044. (including annotations) are cleared as well.
  1045.  
  1046.  
  1047.  
  1048. IV. Using AutoRedraw and the Redraw Queue                             19
  1049. ------------------------------------------------------------------------
  1050.  
  1051.                     SAVING AND LOADING EQUATION LISTS
  1052.  
  1053. To save the list of equations you're working on, as well as the title
  1054. and y-axis labels if you've entered them, simply select Save List from
  1055. the File menu and enter a filename. This file will be saved in the
  1056. current directory with an extension of ".GR" (for GRaphmatica) unless
  1057. you specify differently. To save to diskette, you simply have to insert
  1058. "A:" or "B:" before your filename. Longer directories may not fit. When
  1059. asked if you want to include setup information, answer "y" if you want
  1060. to record the current size of the grid and options settings in the
  1061. equation list file. Otherwise, only the text labels and equations in the
  1062. queue are saved in the file.
  1063.  
  1064. To reload your list of equations or load up one of the demo files
  1065. provided with Graphmatica, you have more options. You can automatically
  1066. load a file when you run Graphmatica by typing its name (with or without
  1067. a file path or the ".GR" extension) as a command-line argument. Then
  1068. those equations will be loaded up (and graphed) immediately after the
  1069. opening screen, unless the file includes the autoredraw=off statement
  1070. (see Appendix B: editing equation lists). You can also load an equation
  1071. list at any time by selecting Open List from the File menu. You will
  1072. be presented with a list of files available (if there are any) which can
  1073. be selected using the up/down arrow keys or mouse. This list includes
  1074. two special options, "[Cancel]" and "[New path]". Select cancel to
  1075. return to the equation editor without loading a file, and new path to
  1076. change the current directory to look for files elsewhere.
  1077.  
  1078. After you select a file to load, if the redraw queue is not empty, you
  1079. must decide whether to add the new file's equations to the existing
  1080. queue or replace its current contents. Answer "y" to the prompt to clear
  1081. the queue before loading the new file, or "n" to keep it.
  1082.  
  1083. When the file has been loaded, if AutoRedraw is on Graphmatica will
  1084. proceed to draw all of the equations just loaded (but not the ones that
  1085. were previously in the queue, if you didn't clear it). You can abort
  1086. these by pressing ESC twice on each if you are impatient. The graph
  1087. title and Y-axis labels (if the file had any) that were loaded won't be
  1088. displayed until you print or do a Print Preview (see Section VIII).
  1089.  
  1090. If the file was saved with the Save setup option on, the grid and
  1091. special options settings recorded in the file will be loaded and set
  1092. automatically.
  1093.  
  1094.  
  1095.  
  1096. Section                  ===============================================
  1097. VVV VVV                  | View: Changing the appearance of the screen |
  1098.  V   V                   ===============================================
  1099.  V   V
  1100.   V V
  1101.    V o                                                                20
  1102. ------------------------------------------------------------------------
  1103.  
  1104.                           CLEARING THE SCREEN
  1105.  
  1106. Select Clear in the View menu to clear the screen. Everything will be
  1107. erased and the grid will then be redrawn. Remember, every equation you
  1108. have typed is still stored and can be redrawn later even after you have
  1109. cleared the screen. If an error has garbled the whole screen, here's a
  1110. hint to help regenerate it: first press ESC until the top menu bar is
  1111. refreshed, and then use Clear to redraw the rest of the screen.
  1112.  
  1113.  
  1114.                   CHANGING THE BACKGROUND GRAPH PAPER
  1115.  
  1116. Graphmatica has two additional types of graph paper that may be more
  1117. appropriate than the regular rectangular grid in some situations: polar
  1118. paper and trig paper. Polar paper, instead of a grid of squares,
  1119. consists of concentric circles marking the distance r, and radiating
  1120. lines marking the angle theta at intervals of pi/6 radians. Trig paper,
  1121. intended to ease interpretation of trigonometric functions, uses the
  1122. regular rectangular grid but the x-axis is labelled in multiples of pi
  1123. instead of integers. Logarithmic paper allows you to scale one or both
  1124. axes logarithmically, so that, for instance, 0.1, 1, and 10 are equally
  1125. spaced.
  1126.  
  1127.  
  1128. There are four levels of detail your can choose from for the graph
  1129. paper: no paper, axes only, reference dots, and the full grid. Note that
  1130. polar and rectangular paper look the same when you set the detail level
  1131. to no paper or axes only. Also remember that even with no paper
  1132. selected, legends may still be displayed along the invisible axes unless
  1133. you turn them off independently.
  1134.  
  1135. You can switch instantly between any of these graph paper types by
  1136. selecting the Paper option from the View menu and responding to the two
  1137. prompts, "Select type of graph paper:" and "Select detail level:"
  1138. appropriately. Since only the appearance, not the size, of the grid
  1139. changes during this operation, any graphs you had on-screen will be
  1140. instantly redrawn with no need for recalculation.
  1141.  
  1142. If you select Logarithmic paper, you will also be asked to specify a
  1143. base and choose between semi-log (y axis only) and log-log paper (both
  1144. axes logarithmic). If you choose base 10, you will see 9 lines per
  1145. decade just like real graph paper if there is enough space to display
  1146. them (generally when less than four decades are shown). Otherwise, the
  1147. graph paper will look like normal rectangular, but with gridlines at
  1148. integer powers of the base. Note that when you switch from or to log
  1149. paper, the graphs that are on-screen will have to be recalculated, since
  1150. the shape of the curves is distorted when you take the logarithm.
  1151.  
  1152. Your choice of graph paper type, like all of Graphmatica's options, is
  1153. recorded in your equation list files when you choose to save setup
  1154. information, so when you load up an equation list later the correct
  1155. type of graph paper will automatically be displayed. See the demo files
  1156. TRIG.GR, POLAR.GR, and DIFEQ.GR for examples of this.
  1157.  
  1158.  
  1159.  
  1160. V. View: Changing the Appearance of the Screen                        21
  1161. ------------------------------------------------------------------------
  1162.  
  1163.                            CHANGING THE SCALE
  1164.  
  1165. The scale function allows you to change the scale of the graph you have
  1166. on-screen while keeping the center of the display the same (the origin
  1167. may move but if (2,2) is at the middle of the screen, it will stay
  1168. there). The scale is relative to the size of the grid that is presently
  1169. on the screen, so you need not make any comparison with the default
  1170. grid. To rescale the grid, select Scale from the View menu. Then you
  1171. must provide a "scale factor" to tell the program how much to change the
  1172. size of the grid.
  1173.  
  1174. Enter a positive number to zoom in, or a negative number to pan out. (In
  1175. the Camcorder terminology, a positive number acts as a telephoto and a
  1176. negative as a wide-angle lens.) The number of units across the screen
  1177. will be divided or multiplied by that number accordingly. Numbers
  1178. between -1 and 1, inclusive, are not allowed because they produce
  1179. meaningless values. Decimals greater than 1 or less than -1 are valid
  1180. though.
  1181.  
  1182. If you enter an invalid number, you will be asked to enter the scale
  1183. again. To abort rescaling, leave the field blank and just press enter.
  1184.  
  1185. The program remembers the value you type in and presents it as a default
  1186. the next time you Scale the grid. The original default is "2".
  1187.  
  1188.  
  1189.                            ADJUSTING THE RANGE
  1190.  
  1191. Graphmatica allows you to adjust the start and end of the x- and y-
  1192. ranges independently, so as to create a perfect fit for whatever
  1193. function you are graphing. Or, you can constrain one or more of the
  1194. coordinates to produce a graph with a square aspect ratio without
  1195. actually figuring out all of the values by hand.
  1196.  
  1197. Choose the Range item from the View menu to modify the grid. To create a
  1198. "custom" grid, estimate the top-, bottom-, left- and rightmost
  1199. extremities of the graph, and respond with the proper values to the 4
  1200. Range prompts. The new grid may be somewhat expanded or compressed
  1201. depending on the aspect ratio, but it will show the part of the graph
  1202. you're interested in the best possible detail.
  1203.  
  1204. To create a "square" grid where both x and y axis have the same scale,
  1205. just type "auto" for any of the four coordinates and it will
  1206. automatically be scaled properly to fit the other three. If you pick the
  1207. least significant coordinate to AutoScale, you can match the other three
  1208. exactly, framing your graph almost as well as a custom range, but with a
  1209. more natural aspect ratio. If you want to show the same amount above as
  1210. below the axis, type "auto" at both of the y-coordinate prompts and the
  1211. top and bottom of the grid will be set to properly scaled equal and
  1212. opposite values. (AutoScaling of both x-coordinates based on the height
  1213. of the grid is not supported.)
  1214.  
  1215. All range prompts allow you to input any valid expression, not just
  1216. decimal numbers. You can easily enter very large or small numbers using
  1217. scientific notation: e.g. 1.2*10^-8 for 0.000000012 or 3.4*10^7 for 34
  1218. million.
  1219.  
  1220.  
  1221.  
  1222. V. View: Changing the Appearance of the Screen                        22
  1223. ------------------------------------------------------------------------
  1224.  
  1225.                        CHANGING THE RANGE OF THETA
  1226.  
  1227. [This feature was moved Options menu in version 3.2.]
  1228.  
  1229. Because the independent variable (theta) in polar coordinates is
  1230. fundamentally different from the 'x' of Cartesian coordinates, the
  1231. Cartesian x/y ranges can only be used to determine the size of the
  1232. screen and not the domain of the equation graphed for polar graphs.
  1233. Although the default 0 to 2pi range is the typical range of theta used
  1234. for most graphs that go on forever (like spirals) and some closed graphs
  1235. (like circles), other graphs cannot be completely drawn in this range of
  1236. theta. For instance, the figure-8-shaped "r^2=64cos(2t)", because it is
  1237. undefined where the right half is less than zero, is missing a couple of
  1238. spots unless theta's range is extended to -2pi to 2pi. To allow the
  1239. greatest flexibility, Graphmatica allows theta's range to be changed
  1240. independently of all other options.
  1241.  
  1242. To change the range, select "T range" from the View menu and enter
  1243. the start and end of the range you want (or press enter on the blank
  1244. line to keep the current range). You can type in any expression,
  1245. even using fractions and functions, as long as it evaluates to a
  1246. constant. In particular, although Graphmatica works exclusively with
  1247. radians, you can enter the range in degrees by typing in a number times
  1248. the constant 'd', which converts degrees to radians, as in "45d" for 45
  1249. degrees. You can also easily specify a radian measure as a multiple of
  1250. pi, as in "2p" for 2 pi.
  1251.  
  1252. If you would rather not change the default domain but simply change the
  1253. domain for a single graph, see Section II "Specifying a Domain".
  1254.  
  1255.                       CHANGING THE BACKGROUND COLOR
  1256. Although I've hand picked the default colors for good contrast, if you
  1257. find them dissatisfactory you have two alternate choices to the default
  1258. charcoal gray grid: a white or black background. The graph colors stay
  1259. the same, except for a few light colors which are replaced by darker
  1260. ones on the white background. Hopefully, at least one of these color
  1261. schemes will work for you.
  1262.  
  1263. To change the color scheme, select Colors from the View menu, and select
  1264. Gray, Black, or White. To make your choice of color "stick," select
  1265. Save Setup from the File menu and it will be written to your
  1266. graphmat.ini file. Note that color selection is not saved with .GR
  1267. files, only in your personal setup, since it has more to do with your
  1268. hardware than the equations you are working with.
  1269.  
  1270.  
  1271.  
  1272. Section                   ==============================================
  1273. VVV VVV III               | Labels: Adding Explanatory Text to a Graph |
  1274.  V   V   I                ==============================================
  1275.  V   V   I
  1276.   V V    I
  1277.    V    IIIo                                                          23
  1278. ------------------------------------------------------------------------
  1279.  
  1280.  
  1281.                               AXES LEGENDS
  1282.  
  1283. Graphmatica by default prints legends along the hatch marks across the
  1284. graph so you can more easily locate points or find the coordinates of a
  1285. graphed point. In some cases, though, especially when doing graphs near
  1286. the axes in a monochrome video mode, the numbers can be confusing and
  1287. you may want to turn them off. To do this, select the Legends option in
  1288. the Labels menu and respond to the prompt.
  1289.  
  1290.  
  1291.                       ADDING TITLES TO YOUR GRAPHS
  1292.  
  1293. If you want to add a title line and/or labels along the sides to your
  1294. graph, select Titles from the Labels menu. You can type in a new title,
  1295. edit one you typed in previously, or delete the title by pressing enter
  1296. on the blank line. For the y-axis labels, the length of the string you
  1297. can use depends on the number of rows you monitor has: CGA and EGA can
  1298. hold 23 letters and VGA can hold 28. The program presents you with the
  1299. previous label which you can edit, discard by pressing ESC and typing a
  1300. new string, or turn off completely by pressing ESC and then enter on the
  1301. blank line.
  1302.  
  1303. When you print (or select Print Preview from the menu), the title is
  1304. written across the top of the screen where the equation editor normally
  1305. is, and it is automatically centered. Do not try to center the title
  1306. manually when you are typing it in or it will interfere with the
  1307. automatic centering. When you are graphing and the menu is active, the
  1308. title line is not shown.  Like the title, the y-axis labels are
  1309. automatically centered (vertically) on the graph. Graphmatica does not
  1310. draw these labels immediately, since they are intended mainly to enhance
  1311. hardcopy printing, but they are also displayed if you perform the
  1312. Preview option under the File menu.
  1313.  
  1314. These two features were previously found in the View menu.
  1315.  
  1316.  
  1317.  
  1318. VI. Labels: Adding Explanatory Text to a Graph                        24
  1319. ------------------------------------------------------------------------
  1320.  
  1321.  
  1322.                                ANNOTATIONS
  1323.  
  1324. Annotations are short text phrases which you can place anywhere on the
  1325. graph surface to label intersections, zero-crossings, and other
  1326. important points on your graphs. Graphmatica maintains a list of up to
  1327. ten 30-character annotations.
  1328.  
  1329. To add an annotation to the graph, select Annotate from the Labels menu.
  1330. Type in the text you wish to use to label the graph and press enter. Now
  1331. a crosshair cursor will appear. Move it with the keyboard or mouse to
  1332. the position where you want the upper-left corner of the text. Then
  1333. click the left button or press enter to paste it down. The text will
  1334. appear on the screen immediately. Remember that it is associated with a
  1335. logical x,y coordinate on the grid, not with the physical point you
  1336. clicked on or with any particular equation. Thus, when you rescale the
  1337. graph or change the range, the annotation will reappear at the same
  1338. logical but not always the same physical position. Also note that
  1339. annotations that would run off the screen cannot be drawn. You must zoom
  1340. out so they are fully on the screen before they will appear.
  1341.  
  1342. To edit a previously entered annotation, select the Edit Annote menu
  1343. item from the Labels menu. Next choose the annotation to edit from the
  1344. listbox. You can then choose the delete the annotation, change its text,
  1345. or change its position. Pressing Esc at this prompt instead leaves the
  1346. annotation unchanged.
  1347.  
  1348. All of the annotations you have entered will be saved with any equation
  1349. list you save, and will automatically be displayed again when you reload
  1350. it. Like the graph title, the current annotations are cleared before
  1351. loading a new file and when you Clear all of the equations from the
  1352. redraw queue.
  1353.  
  1354.  
  1355.  
  1356. Section                          =======================================
  1357. VVV VVV III III                  | Viewing and Setting Special Options |
  1358.  V   V   I   I                   =======================================
  1359.  V   V   I   I
  1360.   V V    I   I
  1361.    V    III IIIo                                                      25
  1362. ------------------------------------------------------------------------
  1363.  
  1364.                           THE DEFAULT SETTINGS
  1365.  
  1366. When you run Graphmatica without a GRAPHMAT.INI file, the following
  1367. settings are in effect:
  1368.  
  1369.     Start of range:  (-8.0, *)
  1370.       End of range:  (8.0, *)
  1371.           Fineness:  1.0 **
  1372.            Legends:  ON              Warnings:  OFF
  1373.            Printer:  OFF           AutoRedraw:  ON
  1374.            AutoNum:  1            Graph paper:  Rectangular, Grid
  1375.        Theta Range:  0 to 6.28 (2pi)
  1376.  
  1377. *  varies depending on video mode; always equal and opposite and scaled
  1378.    to provide a square aspect ratio.
  1379. ** on CGA systems fineness is automatically set down to 0.75 to speed up
  1380.    graphing.
  1381. This provides a basic rectangular grid of decent size with the origin
  1382. centered, a square aspect ratio (a 1x1 square on the grid really LOOKS
  1383. square), and a good resolution graph.
  1384.  
  1385.                           VIEWING THE SETTINGS
  1386.  
  1387. The current settings are almost always displayed whenever you change one
  1388. of them. Every item under Options (unless aborted) will bring up the
  1389. settings screen. You can also look at them manually by selecting
  1390. Settings in the Options menu.
  1391.  
  1392.                         SAVING SETUP INFORMATION
  1393.  
  1394. You can save your preferred grid size and settings of other user options
  1395. so that whenever you run Graphmatica again they will automatically be
  1396. restored. You can do this at any time by selecting the Save Setup item
  1397. in the File menu. The options will be saved in the GRAPHMAT.INI file in
  1398. the current directory. If this is not where the program files are
  1399. stored, Graphmatica will not be able to find it again, so if you change
  1400. the directory using the load or save list commands, be sure to reset it
  1401. before you save the setup.
  1402.  
  1403. The setup file is just a special equation list that is loaded
  1404. automatically when you start Graphmatica. It follows the same format as
  1405. a normal equation list (described in Editing Equation Lists) except that
  1406. when you save it Graphmatica leaves out the labels and the equations
  1407. (the important parts of normal equation lists).
  1408.  
  1409. When Graphmatica saves your options, to simplify things it only records
  1410. those options that are different from its own internal defaults. (See
  1411. Default Settings for a list of these.) If your settings are close to the
  1412. defaults, your setup file will be very short.
  1413.  
  1414.  
  1415.  
  1416. VII. Viewing and Setting Special Options                              26
  1417. ------------------------------------------------------------------------
  1418.  
  1419.                          ADJUSTING THE FINENESS
  1420.  
  1421. The fineness factor determines the resolution of the graph, and in
  1422. effect, the amount of time it takes to draw it. The fineness factor of 1
  1423. is quite adequate in most circumstances. Graphmatica's SmartFineness
  1424. feature dynamically adjusts the actual step rate, making the manual
  1425. fineness adjustment almost obsolete, but I left it in to accommodate the
  1426. need for especially sharp graphs or for especially quick renderings.
  1427. SmartFineness automatically decreases the fineness when the point being
  1428. graphed is not on the screen to speed up blank areas, then recovers
  1429. automatically and backtracks to the spot where the graph comes on-screen
  1430. again. It also varies the fineness with the slope of the equation being
  1431. graphed--less when the slope is near-horizontal, greater when the slope
  1432. tends toward vertical, so steep graphs are tracked more effectively. As
  1433. the fineness is increased, the curve will become smoother--to a point.
  1434. Remember that for any increase in the fineness factor, there will be a
  1435. proportional increase in the time it takes to draw a graph.
  1436.  
  1437. If you have CGA adapter, Graphmatica assumes you are using an 8088-class
  1438. PC and reduces the fineness to 0.75 to speed up graphing; the difference
  1439. in resolution is usually not noticeable, but the difference in speed is.
  1440.  
  1441. Fineness is also linked to the rate at which the angle is allowed to
  1442. change in polar graphs, and Cartesian and Polar graphs will be of
  1443. comparable quality at the same fineness factor. Fineness is also linked
  1444. to the step rate of parametric graphs and differential equations;
  1445. because they vary so much, it is harder to insure that all parametrics
  1446. and dif-eqs will graph well at the default fineness, but those I have
  1447. tested look fine.
  1448.  
  1449. To change the fineness factor, select Fineness from the Options menu.
  1450. Any value greater than zero is valid, but I would not recommend going
  1451. below 0.25, as the image quality suffers and the graphs begin to look
  1452. like modern art. Also, a factor greater than 5, in addition to being
  1453. slow, can overflow the list of plotted points kept for quick redraws,
  1454. which may actually cause the graph to display incorrectly if you change
  1455. the graph paper or another option that forces the screen to be redrawn.
  1456.  
  1457.                            WARNING MESSAGES
  1458.  
  1459. By default, the error messages which do not require the equation to be
  1460. edited are suppressed, because they slow down the graphing process,
  1461. cover up the equation, and are somewhat annoying when you know the graph
  1462. shouldn't produce any values in some area. (Also, it saves you the
  1463. effort of specifying the domain for each equation.) If something goes
  1464. wrong (e.g. the graph doesn't show up on screen when it should and the
  1465. reason isn't readily apparent), you can turn on the warning messages
  1466. (using the Warnings function of the Options menu) and redraw it to see
  1467. what the problem is.
  1468.  
  1469.                         CHANGING THE DRAWING MODE
  1470.  
  1471. Graphmatica can render graphs in two ways: by drawing dots to represent
  1472. the points it has calculated or by drawing lines to "connect the dots."
  1473. By default, graphs are drawn using lines, because at a minimal expense
  1474. of time, this makes the graphs much more visible. If you want, however,
  1475. you can change the drawing mode to "dots" using the Draw Mode command in
  1476. the Options menu.
  1477.  
  1478.  
  1479.  
  1480. Section                             ====================================
  1481. VVV VVV III III III                 | Using a Printer with Graphmatica |
  1482.  V   V   I   I   I                  ====================================
  1483.  V   V   I   I   I
  1484.   V V    I   I   I
  1485.    V    III III IIIo                                                  27
  1486. ------------------------------------------------------------------------
  1487.  
  1488.  
  1489.                     PRINTING PICTURES OF YOUR GRAPHS
  1490.  
  1491. Graphmatica includes two internal printing functions which work with CGA,
  1492. EGA, and VGA and many common printers. To print, select the Print
  1493. command from the File menu and then choose the printer type closest to
  1494. your own. If you have an IBM, Epson, or compatible dot-matrix graphics-
  1495. capable printer or a laser printer that doesn't support HP PCL but has
  1496. Epson emulation, select Epson dot-matrix. If you have a Hewlett-Packard
  1497. DeskJet, LaserJet, or other laser or ink jet printer compatible with
  1498. the HP Printer Control Language Level III, choose HP LaserJet/DeskJet.
  1499. If you didn't mean to choose the print command, press ESC to abort.
  1500.  
  1501. Graphmatica does not check the printer's status, so you must have it on
  1502. before you try to print.
  1503.  
  1504. All the graphs on the screen will be printed on the printer, with the
  1505. top of the screen at the top of the paper. At the bottom of the page is
  1506. a list of the equations for the graphs Graphmatica thinks are presently
  1507. on the screen. All graphs you have drawn since the last time the screen
  1508. was cleared, except ones that you aborted by pressing ESC, are included
  1509. in this list.
  1510.  
  1511. If you want to abort the printing process, press ESC. Don't turn off or
  1512. reset the printer until the "Printing..." message at the bottom of the
  1513. screen is gone or DOS may print an error message and mess up the screen.
  1514.  
  1515. The output is as close to what you see on the screen as I can make it,
  1516. but since none of the supported display resolutions makes a very good
  1517. match with the printer's resolution (aside from VGA on a LaserJet), I had
  1518. to do some stretching and squeezing to make the printouts the right
  1519. shape. Thus the size of the printout will vary between different monitor
  1520. types because to make the grid square, I had to expand the x axis
  1521. different amounts to make up for the different vertical resolutions.
  1522.  
  1523. On dot matrix printers, for CGA mode, the x direction is expanded by 33%
  1524. and the y by 100%. For EGA, the x is expanded by 20% and the y remains
  1525. as it was read off the screen. For VGA, the x is expanded 50% and the y
  1526. is compressed about 9% by merging pairs of adjacent lines. For super-
  1527. VGA (800x600), the x direction is expanded by 20% and the y is
  1528. compressed by 27% by merging adjacent lines. For this reason, dot matrix
  1529. printouts at high resolutions may not be as sharp as EGA resolution
  1530.  
  1531. On laser printers, Graphmatica produces crisper, more compact images due
  1532. to the superior resolution. The VGA image will print the best with a
  1533. laser printer: every point is mapped on a one-to-one basis due to the
  1534. square aspect ratios of both the screen and printer. EGA and CGA images
  1535. are scaled accordingly so the output isn't squashed, and they print
  1536. graphics that are not as sharp but still much better than dot-matrix
  1537. output.
  1538.  
  1539.  
  1540.  
  1541. VIII. Using a Printer with Graphmatica                                28
  1542. ------------------------------------------------------------------------
  1543.  
  1544.                             NOTES ON PRINTING
  1545.  
  1546. Graphmatica assumes your printer resides at LPT1:. If your printer is
  1547. not connected to the parallel port but to the serial port instead, you
  1548. must use the DOS "mode" command to redirect the output if you want to
  1549. use the printer. For most people, the command would be
  1550.     C:\>mode lpt1 = com1
  1551. You need to use this command only once before you run Graphmatica; DOS
  1552. will remember the redirection until you shut off the computer or reboot.
  1553.  
  1554. If you have a color printer and a version of GRAPHICS.COM that produce
  1555. legible output from a printscreen, you may want to load GRAPHICS and
  1556. just press Shift-PrtSc while in Preview mode instead of using the print
  1557. option. (It can only print in black and white.)
  1558.  
  1559.  
  1560.                               PRINT PREVIEW
  1561.  
  1562. To see how the screen will look when it is printed, simply select the
  1563. Preview option from the Print menu. In EGA and VGA modes, you can choose
  1564. between color and monochrome preview (it is easier to capture monochrome
  1565. screens to add to other documents, because you need not worry about the
  1566. color palette). Super-VGA does not have any corresponding monochrome
  1567. mode available, unfortunately.
  1568.  
  1569. The menu bar and help line will clear, and the graph title and y-axis
  1570. labels (if any) will be drawn on the screen. If you have a color printer
  1571. that works better with an external print screen function, this is the
  1572. perfect time to press the Print Screen button (if you have a mouse, be
  1573. sure to hide the arrow at the bottom of the screen first). In any case,
  1574. you can look at it as long as you need to. When you want to return to
  1575. work, just press any key or mouse button and the menu will reappear.
  1576. (The side labels are not erased, however; they must be cleared manually.
  1577.  
  1578.                              PRINTING VALUES
  1579.  
  1580. This feature allows you to print out a table of coordinates as the
  1581. program is drawing your graph. This option is available to aid the
  1582. drawing of graphs manually (if you happen to be cheating on your
  1583. homework) and provide a reference for labeling the axes if you print the
  1584. graph without the legends on.
  1585.  
  1586. By default, the print tables option is OFF; most people don't leave
  1587. their printer on at all times and the process slows down graphing. You
  1588. can turn it on by selecting Tables in the Options menu and responding
  1589. "y" to the prompt.
  1590.  
  1591.  
  1592.  
  1593. Section                       ==========================================
  1594. III XX    XX                  | Point menu: evaluating specific points |
  1595.  I    X  X                    ==========================================
  1596.  I     XX
  1597.  I    X  X
  1598. III XX    XX o                                                        29
  1599. ------------------------------------------------------------------------
  1600.  
  1601. Sometimes the graph of a function just isn't enough: you really need to
  1602. get a number. Graphmatica provides two features to help you accomplish
  1603. this task. Both are located in the Point menu.
  1604.  
  1605.                      NUMERICALLY EVALUATING A POINT
  1606.  
  1607. The Evaluate command in the point menu allows you to quickly find the
  1608. value of any equation you've entered at a specific point. First choose
  1609. an equation from the queue by selecting it in the equation combobox. (If
  1610. you do not choose an equation, Graphmatica will select the last one
  1611. graphed for you.) Then choose the Evaluate command from the Point menu.
  1612.  
  1613. You will be asked to enter a value for the selected equation's
  1614. independent variable. Any expression that evaluates to a constant is OK,
  1615. including fractions and constants.
  1616.  
  1617. Graphmatica will calculate the value of the dependent variable(s) at
  1618. this point and display the result. For function families that use the
  1619. parameter 'a', only the starting value of 'a' will be used, since only
  1620. one result can be displayed. (Note that if an error occurs when
  1621. evaluating at the point, a message will be displayed on the bottom line
  1622. regardless of the state of the Warning Messages option.) Press any key
  1623. to type in another point to evaluate. When you want to stop evaluating
  1624. points, press ESC to return to the menu.
  1625.  
  1626. (Point Evaluate cannot be used for slope-field ODE approximations, since
  1627. they are not really functions of a single variable.)
  1628.  
  1629.                          THE COORDINATE CURSOR
  1630.  
  1631. If the point you're interested in is on-screen, you can use the
  1632. coordinate cursor to estimate its coordinates. Simply select the Cursor
  1633. item in the Point menu and use the arrow keys or mouse to maneuver the
  1634. crosshairs over the point in question. The coordinates of that point
  1635. are displayed at the bottom of the screen. Then press ESC to return to
  1636. the menu.
  1637.  
  1638. If you have a mouse, the crosshairs will appear at the current position
  1639. of the mouse pointer and will respond to both the mouse and the
  1640. keyboard. To exit the coordinate cursor, click either mouse button.
  1641.  
  1642. When you use the keyboard to position the pointer, you will notice that
  1643. it moves about 20 pixels with each keypress. (This makes it possible to
  1644. move rapidly from one side of the screen to the other.) To move the
  1645. crosshair one pixel at a time, hold down the Ctrl key while pressing
  1646. the appropriate arrow key (it is necessary to press Ctrl first).
  1647.  
  1648. Remember that the values reported by the coordinate cursor are limited
  1649. by the resolution of your screen. At the default grid size, values may
  1650. be off by 0.01 or more. For best results, you may want to zoom in on
  1651. the section of the graph you are interested in before examining
  1652. specific points with the cursor. (Of course, you can also use the
  1653. Evaluate command to get precise numeric results at any time.)
  1654.  
  1655.  
  1656. Appendix                        ========================================
  1657.  AAAA                           | Graphmatica's Command Line Arguments |
  1658. A    A                          ========================================
  1659. AAAAAA
  1660. A    A
  1661. A    Ao                                                               30
  1662. ------------------------------------------------------------------------
  1663.  
  1664. With the introduction of the GRAPHMAT.INI file, which will not only
  1665. save your preferred options automatically from inside Graphmatica but
  1666. will also reset them automatically the next time you run the program,
  1667. most of the command line arguments that GraphIt! version 2.80 supported
  1668. were removed in version 3.0. [Although you shouldn't need to edit the
  1669. setup file yourself at all, its format is described in Appendix B.]
  1670.  
  1671. Arguments are NOT case sensitive (upper-case and lower-case letters
  1672. are treated exactly the same). Arguments must be separated by one or
  1673. more spaces on the command line. Excluding filenames, the other
  1674. argument must begin with the standard MS-DOS "switch" character ("/").
  1675. UNIX-style switches (starting with "-") are NOT supported.
  1676.  
  1677.  
  1678. /G:xxxxxx        Graph Equation
  1679. -------------------------------
  1680.     If you want to start up Graphmatica by automatically graphing one or
  1681.     more equations, use the /G: option. The only limits on the number
  1682.     of equations you can include on the command line are the capacity
  1683.     of the redraw queue (25 equations) and, of course, the maximum
  1684.     length of the command line (I think it's around 128 characters).
  1685.     The equation(s) will be parsed and graphed in exactly the same way
  1686.     as the regular prompted input, with one exception: if you want to
  1687.     include any spaces in the equation, you must enclose the whole
  1688.     "/G:xxxx" string in quotation marks or the spaces will be
  1689.     interpreted as delimiters between arguments.  As the Graphmatica
  1690.     editor is far superior to the DOS command line editor, this option
  1691.     has limited usefulness, but it is a good interface for execution
  1692.     from a batch file.
  1693.  
  1694. /V       Use VESA 800x600 mode
  1695. ------------------------------
  1696.     Because the signals that high-resolution video cards produce may
  1697.     physically damage monitors that are not capable of displaying them,
  1698.     Graphmatica does not attempt to detect super-VGA cards. If you know
  1699.     your monitor is capable of supporting this mode and you have a VESA-
  1700.     compatible video card (or a TSR VESA driver), you can select 800x600
  1701.     resolution with this switch. kSoft ASSUMES NO LIABILITY FOR ANY
  1702.     DAMAGE CAUSED BY IMPROPER USE OF THIS SETTING. If your card is not
  1703.     compatible with this mode, Graphmatica will select standard VGA.
  1704.     The Microsoft mouse driver, version 8.20, does not fully support
  1705.     these modes. (The mouse cursor does not display.) A newer version of
  1706.     this or another mouse driver may.
  1707.  
  1708. filename[.ext]
  1709. --------------
  1710.     Specifying the name of a valid equation list file (with or without
  1711.     the ".GR" extension) loads that file upon startup. Unless
  1712.     AUTOREDRAW=OFF is specified in the [options] section of the file
  1713.     loaded (assuming it has one), the graphs are drawn as soon as the
  1714.     opening screen is gone. Note that the settings saved in GRAPHMAT.INI
  1715.     are loaded before any equation list files you specify.
  1716.  
  1717.  
  1718.  
  1719. Appendix                   ===========================================
  1720. BBBB                       | Editing Equation Lists and GRAPHMAT.INI |
  1721. B   B                      ===========================================
  1722. BBBB
  1723. B   B
  1724. BBBB o                                                              31
  1725. ----------------------------------------------------------------------
  1726.  
  1727. Graphmatica does not really provide facilities for maintaining equation
  1728. lists; although you can edit an equation and change the order of
  1729. equations by redrawing selected graphs, determining the precise order of
  1730. equations in the list is difficult since they are dynamically shuffled
  1731. each time an equation is entered or redrawn to make Graphmatica more
  1732. interactive. However, the equation list is just a text file whose
  1733. structure is virtually identical to the win.ini file, you can create or
  1734. modify one with virtually any editor. The structure goes like this:
  1735. (sections in parentheses are explanations; don't type them in.)
  1736.  
  1737.   [saved-setup]   (if present, resets all options to defaults before
  1738.                   load to ensure the saved setup is restored correctly)
  1739.   [labels]
  1740.   title = xxxx    (any character string, up to 76 chars.)
  1741.   left = xxxx
  1742.   right = xxxx
  1743.  
  1744.   [grid]
  1745.   left = #.##            (left side of grid)     (any decimal number)
  1746.   right = #.##           (right side of grid)    (or "auto" to autoscale)
  1747.   top = #.##             (top of grid)
  1748.   bottom = #.##          (bottom of grid)
  1749.  
  1750.   [options]
  1751.   paper = polar, trig, rect, slog or llog  (controls graph paper type)
  1752.   detail = none, axes, dots, or grid       (controls paper detail level)
  1753.   autoredraw = on or off  (controls AutoRedraw)          ("on" or "off")
  1754.   autonum = ##            (number of equations to A.R.)  (any integer 0-25)
  1755.   legends = on or off     (controls axis legends (numbers))
  1756.  _color = 1,2, or mono   _
  1757. | hogcpu = on or off      |
  1758. | widelines = on or off   |   valid under Graphmatica for Windows ONLY
  1759. | autosquare = on or off  |  Graphmatica for DOS ignores these 4 settings
  1760. |_labels = on or off     _|
  1761.   tables = on or off      (controls print tables feature)
  1762.   warnings = on or off    (controls warning error messages)
  1763.   defscale = #.##         (default for "Scale" prompt - any decimal number)
  1764.   fineness = #.##         (default fineness value)
  1765.   tstart = #.##           (default start of theta's domain)
  1766.   tstop = #.##            (default end of theta's domain)
  1767.  
  1768.   [equations]
  1769.   (up to 25 equations, each up to 200 characters, each on a separate line)
  1770.  
  1771. The [labels] section specifies the title and y-axis labels. The [grid]
  1772. section gives the left, right, top and bottom coordinates of the grid.
  1773. Type "auto" for any one to auto-scale that coordinate based on the other
  1774. three. Type auto for both the top and bottom to auto-scale the y-axis so
  1775. the top and bottom coordinates are equal and opposite.
  1776.  
  1777.  
  1778.  
  1779. B. Editing equation lists and GRAPHMAT.INI                            32
  1780. ------------------------------------------------------------------------
  1781.  
  1782. You can omit any item or even a complete section if you don't want to
  1783. change the default. Type exactly as specified above, including the
  1784. brackets "[ ]" around the section headings, but replacing the values on
  1785. the right side of the equals signs with your own values. If you don't
  1786. know or don't care what the value is for an option, just leave the line
  1787. out. Don't worry about capitalization, extra spaces, or even extra blank
  1788. lines. (However, each entry must be on a separate line or some may be
  1789. ignored.) You can put the options and sections in any order ... the only
  1790. requirement is that the [equations] section must come last, if there is
  1791. one. Invalid options are also ignored.
  1792.  
  1793. If you want to create a file with no titles or options, simply type the
  1794. "[equations]" header and then type all of your equations. Each equation
  1795. must be on a separate line. There is one catch, however: since
  1796. Graphmatica graphs the most recently entered equation first when it
  1797. redraws, when the list is loaded and graphed, the equation listed LAST
  1798. will be graphed FIRST. (It is certainly possible to correct this
  1799. situation by graphing the equations as they come in, but then every
  1800. subsequent "redraw all" command would draw the list backwards anyway.)
  1801. If you load an equation list and immediately save it without changing
  1802. anything, the net effect will be that the order of the equations in the
  1803. file is reversed.
  1804.  
  1805. The GRAPHMAT.INI file, which is loaded whenever you run Graphmatica
  1806. without specifying an equation list to load, uses the exact same
  1807. format... when you choose the Save Setup command, Graphmatica simply
  1808. saves the setup file as it would an equation list, except the [labels]
  1809. and [equations] sections are omitted, since you probably don't want to
  1810. have the same graph title and equations load up automatically forever
  1811. and ever.
  1812.  
  1813.                       CONVERTING OLD EQUATION LISTS
  1814.  
  1815. Anybody who upgraded from GraphIt! for DOS version 2.80 who wants to
  1816. convert equation list files from the original format to one compatible
  1817. with Graphmatica for DOS 3.3, please contact me and I will explain the
  1818. process.
  1819.  
  1820.  
  1821.  
  1822. Appendix                          ====================================
  1823.  CCCC                             | Upgrade Notes: Changes from 3.20 |
  1824. C                                 ====================================
  1825. C
  1826. C
  1827.  CCCC o                                                             33
  1828. ----------------------------------------------------------------------
  1829.  
  1830. Version 3.3 is an incremental release which includes a number of new
  1831. features that make it more powerful and flexible than any previous one.
  1832. Please take a minute to acquaint yourself with them:
  1833.  
  1834. The following features were enhanced:
  1835.  1. The R-K differential equations approximation routine has been
  1836.     modified to use an adaptive step-size algorithm, yielding more
  1837.     accurate graphs that are much faster than the old routine (almost
  1838.     comparable to plain cartesian graphing).
  1839.  2. Differential equations may also be specified in terms of dy = f(y,x)
  1840.     in addition to the original dx = f(x,t) notation.
  1841.  3. The algorithm which determines grid spacing has been replaced by a
  1842.     much more consistent approach which always puts labels at multiples
  1843.     of 2, 5, or 10; not 7 or 22 like the old one did on occasion.
  1844.  4. The legends, coordinate cursor, and Point Evaluate now use a smart
  1845.     number formatter which chooses the format most appropriate for the
  1846.     magnitude and precision of the number displayed. Integers are
  1847.     displayed without excess decimals, and very large and small numbers
  1848.     are displayed in scientific notation for an effective range of
  1849.     10^-99 to 10^99.
  1850.  5. More bullet-proofed parser. Invalid expressions that used to crash
  1851.     the program when it tried to evaluate them are now caught and
  1852.     rejected in the parser.
  1853.  6. Point Evaluate now works on all equations (including ODE initial
  1854.     value approximations) except flow fields (ODEs with no initial
  1855.     values specified).
  1856.  7. Prettier 0, 2, and 7 characters in the legends font for better
  1857.     readability.
  1858.  
  1859. The following new features were added:
  1860.  1. Second, third, and fourth order differential equations can now be
  1861.     graphed using the new variables "d2x", "d3x", and "d4x" to mean
  1862.     d^2x/dt^2, d^3x/dt^3, etc.
  1863.  2. Also, the initial value for dx/dt can now be specified using the
  1864.     mouse in addition to t and x.
  1865.  3. New logarithmic graph paper. Graph exponential functions more
  1866.     intuitively using the semi-log (y-axis only) or log-log graph
  1867.     paper.
  1868.  4. New alternative color schemes. You can now use a black or white
  1869.     background instead of the traditional gray, if you choose.
  1870.  
  1871. I hope you find these new features beneficial. If you'd like to support
  1872. future versions with your comments and suggestions, see Appendix D or
  1873. the included REGISTER.TXT for the mail-in survey form.
  1874.  
  1875.  
  1876.  
  1877. Appendix                                    ==========================
  1878. DDDDD                                       | Shareware / Order Form |
  1879. D    D                                      ==========================
  1880. D     D
  1881. D    D
  1882. DDDDD  o                                                            34
  1883. ----------------------------------------------------------------------
  1884.  
  1885. Shareware: Feel free to distribute copies of Graphmatica to your friends
  1886. and upload to BBS's where others can donwload it AS LONG AS 1) you
  1887. charge no fees for its use or distribution and 2) you do not modify the
  1888. program or documentation files in any way.
  1889.  
  1890. [Shareware catalogs have permission to distribute this product for no
  1891. more than $5 a copy. However, please contact me to make sure you have
  1892. the latest version before you do so.]
  1893.  
  1894. This program is to be taken AS IS with no warranties, express or implied.
  1895. Although I know of no serious bugs, kSoft will not be held liable for any
  1896. damage caused by use or misuse of the program. However, if you tell me
  1897. about any bugs you may find, I will try to correct them in the next
  1898. release.
  1899.  
  1900. If, after using Graphmatica, you find that it is easy, helpful, and
  1901. convenient to use, please support the release of future versions by
  1902. filling out the registration form on the next page and sending your
  1903. contribution (payable to Keith Hertzer) to the address below:
  1904.  
  1905.                               kSoft, Inc.
  1906.                           345 Montecillo Dr.
  1907.                       Walnut Creek, CA 94595-2613
  1908.  
  1909. If you send $20 or more, you will be registered to receive a diskette
  1910. with the next versions of Graphmatica for DOS and Windows when they
  1911. become available. For releases after that, you will be informed that a
  1912. new version is available and how you can get it. Orders outside of North
  1913. America: please add $5 for shipping if you want to receive your upgrade
  1914. via air mail.
  1915.  
  1916. Even if you cannot send any money, please help me out by filling out the
  1917. response form below, especially if you have any suggestions about what I
  1918. should add to the next upgrade.
  1919.  
  1920. Graphmatica is also supported via CompuServe. If you are a member, look
  1921. for new versions in the Math and Science forum ("GO SCIENCE") and feel
  1922. free to send me feedback at any time at User ID 70711,2071. You may also
  1923. register Graphmatica via CompuServe's Shareware registration database.
  1924. The ID number is 111. Type GO SWREG to start the transaction. The fee of
  1925. $23.50 ($20 + $3.50 for Compu$erve) will be added to your monthly bill.
  1926.  
  1927. WHAT'S NEXT? I am slowly proceeding with Graphmatica 3D, which may or
  1928. may not have a DOS version. If you still don't have Windows, and want to
  1929. use this program, please let me know. If there is sufficient user
  1930. support I will release DOS as well as Windows versions.
  1931.  
  1932. If you would like a copy of the source code for Graphmatica for DOS
  1933. (developed using QuickC version 2.5 and compiled with Microsoft C 7.0),
  1934. please send me a check for $20 and a short note telling why you would
  1935. like it.
  1936.  
  1937.  
  1938. --G3.3i--------------------kSoft REGISTRATION FORM---------------------3/94--
  1939. Name &
  1940. Company _____________________________________________________________________
  1941.  
  1942.  
  1943. Address _____________________________________________________________________
  1944.  
  1945.  
  1946. City ________________________________    State _______    ZIP _______________
  1947.   _
  1948.  |_|  Enclosed is my $20 or more contribution. Please register me to
  1949.       receive the next upgrade to Graphmatica for DOS.
  1950.   _
  1951.  |_|  Enclosed is my $20 or more contribution. I want Graphmatica for Windows
  1952.       NOW! Please use my upgrade credit to send me the current version.
  1953.   _
  1954.  |_|  Please send me the source code [for QuickC 2.5] to Graphmatica for DOS
  1955.       3.3. I have enclosed a note on why I'd like it and a check for $20.
  1956.  
  1957.                FOREIGN ORDERS PLEASE ADD $5.00 FOR SHIPPING
  1958. ------------------(make checks payable to KEITH HERTZER)---------------------
  1959.  
  1960. What size diskettes do you use?        5 1/4"           3 1/2"
  1961.  
  1962. Where did you get Graphmatica?  (name of BBS or catalog: ________________)
  1963.  
  1964. From a friend      Local BBS       CompuServe      Shareware Catalog
  1965.  
  1966. What processor are you using to run Graphmatica ?  (circle one)
  1967.  
  1968. 8088/8086      286        386sx      386      486       Other (___________)
  1969.  
  1970. What DOS version do you usually run with Graphmatica?   _________
  1971.  
  1972. If you use a printer with Graphmatica, what type is it?
  1973.  
  1974.      dot-matrix        ink jet        laser       Other (___________)
  1975.  
  1976. What type of video card do you have?      Mono          CGA
  1977.  
  1978.      EGA             VGA           SVGA           Other (___________)
  1979.  
  1980. What features do you like best about Graphmatica?
  1981.  
  1982. _____________________________________________________________________________
  1983.  
  1984. _____________________________________________________________________________
  1985.  
  1986. What problems have you experienced with Graphmatica?
  1987.  
  1988. _____________________________________________________________________________
  1989.  
  1990. _____________________________________________________________________________
  1991.  
  1992. Any other comments or suggestions for improvement in the next upgrade?
  1993. (Your comments are vital so I will know what to change or add. Please
  1994. feel free to use the back or another sheet of paper.)
  1995.  
  1996. _____________________________________________________________________________
  1997.  
  1998. _____________________________________________________________________________
  1999. Please send to: kSoft, Inc., 345 Montecillo Dr., Walnut Creek, CA 94595-2613.
  2000.  
  2001.